package main

import "fmt"

func main() {
	height := []int{1, 8, 6, 2, 5, 4, 8, 3, 7}
	fmt.Printf("%d\n", maxArea(height))
}

/**
思考： 水的面积 = 长 X 宽， 在双指针遍历的过程中，长是逐渐缩短的
       所以想要面积最大，只能是宽度变长
*/

func maxArea(height []int) int {
	// 左指针
	left := 0
	// 右指针
	right := len(height) - 1

	// 存储最终的结果
	result := 0
	for left < right {
		// 找短板
		if height[left] < height[right] {
			result = max(height[left]*(right-left), result)
			left++
		} else {
			result = max(height[right]*(right-left), result)
			right--
		}

	}
	return result
}

func max(a, b int) int {
	if a < b {
		return b
	}
	return a
}
